package main

import "fmt"

func main() {
	// 包含闭包的函数，返回一个匿名函数
	increment := getIncrementFunc()

	// 使用闭包函数来增加计数器的值
	fmt.Println(increment()) // 输出：1
	fmt.Println(increment()) // 输出：2
	fmt.Println(increment()) // 输出：3
}

// 返回一个闭包函数，用于增加计数器的值
func getIncrementFunc() func() int {
	count := 0 // count 是闭包函数内的自由变量，被闭包函数捕获

	// 返回的匿名函数形成了闭包，可以访问 count 变量
	return func() int {
		count++
		return count
	}
}
